using System;
using Lucene.Linq.Mapping;
using Lucene.Linq.Search;

namespace Lucene.Linq.VSTests.DatabaseIntegrations.CodeFirst
{
    [Document]
    public class Order : IIndexable
    {

        [Field(FieldIndex.Tokenized, FieldStore.Yes)]
        public int OrderID
        {
            get;
            set;
        }

        [Field(FieldIndex.Tokenized, FieldStore.Yes)]
        public string CustomerID
        {
            get;
            set;
        }


        public int? EmployeeID
        {
            get;
            set;
        }

        public DateTime? OrderDate
        {
            get;
            set;
        }

        public DateTime? RequiredDate
        {
            get;
            set;
        }

        public DateTime? ShippedDate
        {
            get;
            set;
        }

        public int? ShipVia
        {
            get;
            set;
        }

        public decimal? Freight
        {
            get;
            set;
        }

        [Field(FieldIndex.Tokenized, FieldStore.Yes, IsDefault = true)]
        public string ShipName
        {
            get;
            set;
        }

        [Field(FieldIndex.Tokenized, FieldStore.Yes)]
        public string ShipAddress
        {
            get;
            set;
        }

        [Field(FieldIndex.Tokenized, FieldStore.Yes)]
        public string ShipCity
        {
            get;
            set;
        }

        public string ShipRegion
        {
            get;
            set;
        }

        public string ShipPostalCode
        {
            get;
            set;
        }

        [Field(FieldIndex.Tokenized, FieldStore.Yes)]
        public string ShipCountry
        {
            get;
            set;
        }

    }
}